#include "Computer.h"

//注意：获取指针指向的变量的长度一定不要使用sizeof，因为
//sizeof得到的是指针大小的空间，只与系统相关
Computer::Computer(const char *brand, float price)
: _brand(new char[strlen(brand) + 1]())
, _price(price)
{
    cout << "Computer(const char *, float)" << endl;
    strcpy(_brand, brand);
}

void Computer::setBrand(const char *brand)
{
    //没有考虑越界
    strcpy(_brand, brand);
}

void Computer::setPrice(float price)
{
    _price = price;
}

void Computer::print()
{
    if(_brand)
    {
        cout << "_brand = " << _brand << endl
             << "_price = " << _price << endl;
    }
}

//使用默认析构函数就已经不够用
//所以需要自定义
Computer::~Computer()
{
    cout << "~Computer()" << endl;
    if(_brand)
    {
        delete [] _brand; 
        _brand = nullptr;
    }
}
